Carte de la
localisation des accidents de vélo à Bordeaux et des pistes
cyclabes.
# Filtrer les données pour ne conserver que les lignes où catv == 1 ou catv == 80
acc_21_veh <- filter(acc_21_veh, catv == 1 | catv == 80)
acc_21_car <- filter(acc_21_car, com == 33063)
vel_21_g <- remove_attribut_g(vel_21)
vel_21_d <- remove_attribut_d(vel_21)
#vel_21 <- remove_attribut(vel_21)
# Vérifier les premières lignes des données filtrées
print(head(acc_21_veh))
## Num_Acc id_vehicule num_veh senc catv obs obsm choc manv motor occutc
## 1 202300000017 155 680 527 B01 2 1 0 2 1 13 5 NA
## 2 202300000025 155 680 513 C01 0 1 0 0 0 2 5 NA
## 3 202300000026 155 680 512 B01 1 80 0 2 0 1 3 NA
## 4 202300000033 155 680 500 B01 1 1 0 2 0 2 5 NA
## 5 202300000033 155 680 501 A01 1 1 0 2 0 26 5 NA
## 6 202300000042 155 680 487 A01 0 1 0 1 1 2 5 NA
## Num_Acc jour mois an hrmn lum dep com agg int atm col
## 1 202300000892 2 5 2023 10:45 1 33 33063 2 2 1 6
## 2 202300001096 4 5 2023 11:15 1 33 33063 2 2 7 2
## 3 202300001201 28 11 2023 22:50 5 33 33063 2 1 1 3
## 4 202300001206 28 11 2023 18:30 5 33 33063 2 3 1 3
## 5 202300001212 28 11 2023 15:30 1 33 33063 2 3 1 2
## 6 202300001509 9 6 2023 19:50 1 33 33063 1 1 1 2
## adr lat long
## 1 Rue Tastet 44.83502 -0.582220
## 2 Avenue de Verdun 44.83878 -0.626070
## 3 Boulevard des Frères Moga 44.82302 -0.542340
## 4 Cours Edouard Vaillant 44.86335 -0.561310
## 5 Boulevard Alfred Daney 44.86749 -0.572410
## 6 ROCADE A 630 44.88012 -0.537914
# Réaliser la jointure attributaire avec l'argument relationship
acc_21_car_veh <- inner_join(acc_21_car, acc_21_veh, by = "Num_Acc", relationship = "many-to-many")
# Vérifier les premières lignes du résultat de la jointure
#print(head(result))
# Convertir les données en objet spatial
acc_21_car_veh_sf <- st_as_sf(acc_21_car_veh, coords = c("long", "lat"), crs = 4326)
#Création tampon (géotratement)
#vel_21_g_buffer <- st_buffer(vel_21_g, dist = 10)
vel_21_d_buffer <- st_buffer(vel_21_d, dist = 10)
#vel_21_buffer <- st_buffer(vel_21, dist = 10)
# Effectuer une jointure spatiale pour compter les entités dans chaque tampon
#jointure_vel_acc_g <- st_join(vel_21_g_buffer, acc_21_car_veh_sf, join = st_intersects)
jointure_vel_acc_d <- st_join(vel_21_d_buffer, acc_21_car_veh_sf, join = st_intersects)
# Compter le nombre d'entités dans chaque tampon
#entites_count_vel_acc_d <- jointure_vel_acc_d %>%
# group_by(id_osm) %>% # Assurez-vous que 'id_osm' est l'identifiant correct
# summarise(nombre_entites = n())
# Aperçue des données chargées
mapview(vel_21_g, zcol = "ame_g", color = c("#0e3f5d", "#1f5e70", "#387d84", "#64a69a", "#8bc2af", "#b1dbc5")) + mapview(vel_21_d, zcol = "ame_d", color = c("#0e3f5d", "#1f5e70", "#8bc2af", "#b1dbc5","#d1fbd5")) + mapview(acc_21_car_veh_sf, color = "red")
## Warning: Found less unique colors (6) than unique zcol values (8)!
## Recycling color vector.
## Warning: Found less unique colors (5) than unique zcol values (7)!
## Recycling color vector.
Graphique du nombre
d’accidents par type de voie cyclable en 2023
var = c("BANDE CYCLABLE", "COULOIR BUS+VELO", "DOUBLE SENS CYCLABLE BANDE", "DOUBLE SENS CYCLABLE PISTE", "PISTE CYCLABLE", "VOIE VERTE")
Nb_acc <- c(0, 0, 0, 0, 0, 0)
df <- data.frame(var, Nb_acc)
# Compter le nombre d'accidents par type de voie cyclable
for (i in 1:nrow(jointure_vel_acc_d)) {
if (is.na(jointure_vel_acc_d$Num_Acc[i])) {
next
}
if (jointure_vel_acc_d$ame_d[i] == "BANDE CYCLABLE") {
df$Nb_acc[1] <- df$Nb_acc[1] + 1
} else if (jointure_vel_acc_d$ame_d[i] == "COULOIR BUS+VELO") {
df$Nb_acc[2] <- df$Nb_acc[2] + 1
} else if (jointure_vel_acc_d$ame_d[i] == "DOUBLE SENS CYCLABLE BANDE") {
df$Nb_acc[3] <- df$Nb_acc[3] + 1
} else if (jointure_vel_acc_d$ame_d[i] == "DOUBLE SENS CYCLABLE PISTE") {
df$Nb_acc[4] <- df$Nb_acc[4] + 1
} else if (jointure_vel_acc_d$ame_d[i] == "PISTE CYCLABLE") {
df$Nb_acc[5] <- df$Nb_acc[5] + 1
} else if (jointure_vel_acc_d$ame_d[i] == "VOIE VERTE") {
df$Nb_acc[6] <- df$Nb_acc[6] + 1
}
}
# Créer le graphique
ggplot(data = df, mapping = aes(x = var, y = Nb_acc)) +
geom_bar(stat = "identity", fill = "steelblue") +
labs(title = "Nombre d'accidents par type de voie cyclable",
x = "Type de voie cyclable",
y = "Nombre d'accidents") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
